home *** CD-ROM | disk | FTP | other *** search
/ Champak 26 (Anniversary Edition) / Volume 26 [Anniversary Edition] - JOGO DISK .iso / Fight / battleinmegaville.swf / scripts / frame_1226 / DoAction.as
Text File  |  2006-09-05  |  45KB  |  1,235 lines

  1. function collision(sprite)
  2. {
  3.    sprite._hitWall = false;
  4.    lazyStop = true;
  5.    if(sprite._yspd > 0)
  6.    {
  7.       ychg = 1;
  8.       if(_root.opaque.hitTest(sprite._x,sprite._y + 1,true))
  9.       {
  10.          sprite._yspd = 0;
  11.          sprite._airborne = false;
  12.       }
  13.       else
  14.       {
  15.          sprite._airborne = true;
  16.          lazyStop = false;
  17.       }
  18.    }
  19.    else
  20.    {
  21.       sprite._airborne = true;
  22.       ychg = -1;
  23.       lazyStop = false;
  24.    }
  25.    if(sprite._xspd > 0)
  26.    {
  27.       xchg = 1;
  28.       if(_root.opaque.hitTest(sprite._x + 1,sprite._y,true))
  29.       {
  30.          sprite._xspd = 0;
  31.          sprite._hitWall = sprite._xscale < 0;
  32.          sprite._hitWall |= sprite._state == STATE_DAMAGE;
  33.       }
  34.       else
  35.       {
  36.          lazyStop = false;
  37.       }
  38.    }
  39.    else if(sprite._xspd < 0)
  40.    {
  41.       xchg = -1;
  42.       if(_root.opaque.hitTest(sprite._x - 1,sprite._y,true))
  43.       {
  44.          sprite._xspd = 0;
  45.          sprite._hitWall = sprite._xscale > 0;
  46.          sprite._hitWall |= sprite._state == STATE_DAMAGE;
  47.       }
  48.       else
  49.       {
  50.          lazyStop = false;
  51.       }
  52.    }
  53.    if(!_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y + sprite._yspd,true))
  54.    {
  55.       return undefined;
  56.    }
  57.    if(lazyStop)
  58.    {
  59.       return undefined;
  60.    }
  61.    if(_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y,true))
  62.    {
  63.       sprite._xspd -= xchg * 2;
  64.       sprite._hitWall = sprite._xscale * xchg < 0;
  65.       sprite._hitWall |= sprite._state == STATE_DAMAGE;
  66.       while(_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y,true))
  67.       {
  68.          sprite._xspd -= xchg * 2;
  69.       }
  70.       if(!_root.opaque.hitTest(sprite._x + sprite._xspd + xchg,sprite._y,true))
  71.       {
  72.          sprite._xspd += xchg;
  73.       }
  74.    }
  75.    if(_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y + sprite._yspd,true))
  76.    {
  77.       sprite._yspd -= ychg * 2;
  78.       if(ychg > 0)
  79.       {
  80.          sprite._airborne = false;
  81.       }
  82.       while(_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y + sprite._yspd,true))
  83.       {
  84.          sprite._yspd -= ychg * 2;
  85.       }
  86.       if(!_root.opaque.hitTest(sprite._x + sprite._xspd,sprite._y + sprite._yspd + ychg,true))
  87.       {
  88.          sprite._yspd += ychg;
  89.       }
  90.    }
  91.    else
  92.    {
  93.       sprite._airborne = true;
  94.    }
  95. }
  96. function updateKeyCombo(player, newKeyCode)
  97. {
  98.    if(newKeyCode == null && _root.idleTime[player] < _root.MAX_IDLETIME)
  99.    {
  100.       _root.idleTime[player]++;
  101.    }
  102.    else
  103.    {
  104.       _root.keyCombo[player] = _root.keyComboNew[player];
  105.       _root.keyComboNew[player] = newKeyCode;
  106.       _root.idleTime[player] = 0;
  107.    }
  108. }
  109. function clearKeyCombo(player)
  110. {
  111.    _root.keyCombo[player] = null;
  112.    _root.keyComboNew[player] = null;
  113. }
  114. function android()
  115. {
  116.    sprite1.colour = new Color(sprite1);
  117.    projectile1.colour = new Color(projectile1);
  118.    sprite1.colour.setTransform(twinClrTrans);
  119.    projectile1.colour.setTransform(twinClrTrans);
  120.    sprite1._android = true;
  121. }
  122. function aiRun()
  123. {
  124.    if(otherai && otherName != NAME_ZIM && otherSprite._personality == AI_AGGRESSIVE && (Math.abs(otherSprite._x - thisSprite._x) < 60 || thisSprite._state == STATE_DOWNATK) && (thisSprite._state == STATE_COMBO1 || thisSprite._state == STATE_COMBO2 || thisSprite._state == STATE_DOWNATK || (thisName == NAME_DEXTER || thisName == NAME_BUBBLES) && thisSprite._state == STATE_COMBO2B || (thisName == NAME_DEXTER || thisName == NAME_BUBBLES) && thisSprite._state == STATE_COMBO3B || (thisName == NAME_BLOSSOM || thisName == NAME_BUTTERCUP || thisName == NAME_BELL) && thisSprite._state == STATE_RANGED) && !otherSprite._airborne && (otherSprite._state == STATE_IDLE || otherSprite._state == STATE_RUN))
  125.    {
  126.       otherSprite._deflect = prob(_difficulty / MAX_DIFFICULTY * 100 - 80);
  127.    }
  128.    else if(otherai)
  129.    {
  130.       otherSprite._deflect = false;
  131.    }
  132.    if(thisName == NAME_ZIM)
  133.    {
  134.       otherSprite._juggles = 0;
  135.    }
  136.    if(ai && !_gameover && thisName == NAME_ZIM)
  137.    {
  138.       thisSprite.projectile._damage = 32;
  139.       if(otherSprite._state == STATE_IDLE || otherSprite._state == STATE_RUN)
  140.       {
  141.          sprite[0].combo.num = 0;
  142.          sprite[1].combo.num = 0;
  143.       }
  144.       onLeft = false;
  145.       onRight = false;
  146.       onUp = false;
  147.       onDown = false;
  148.       onA = false;
  149.       onB = false;
  150.       newLeft = false;
  151.       newRight = false;
  152.       newUp = false;
  153.       newDown = false;
  154.       newA = false;
  155.       newB = false;
  156.       keyCombo[spriteIndex] = null;
  157.       if(thisSprite._armour <= 0)
  158.       {
  159.          thisSprite._armour = MAX_ARMOUR;
  160.          thisSprite.gotoAndPlay("vulnerable");
  161.          thisSprite._state = STATE_RANGED;
  162.          thisSprite._stateDone = false;
  163.       }
  164.       else if(thisSprite._state == STATE_RUN)
  165.       {
  166.          onLeft = faceLeft;
  167.          onRight = !faceLeft;
  168.          if(faceLeft && thisSprite._x <= 50 || !faceLeft && thisSprite._x >= 350)
  169.          {
  170.             thisSprite._state = STATE_IDLE;
  171.             thisSprite.gotoAndPlay("idle");
  172.             thisSprite._xscale *= -1;
  173.             onLeft = false;
  174.             onRight = false;
  175.          }
  176.       }
  177.       else if(thisSprite._state == STATE_IDLE && prob(10 * _difficulty / MAX_DIFFICULTY))
  178.       {
  179.          thisSprite._stateDone = false;
  180.          damageDone[spriteIndex][otherIndex] = false;
  181.          thisSprite._state = STATE_RANGED;
  182.          if(prob(14))
  183.          {
  184.             thisSprite._state = STATE_RUN;
  185.             thisSprite.gotoAndPlay("forward");
  186.             onLeft = faceLeft;
  187.             onRight = !faceLeft;
  188.          }
  189.          else if(prob(17))
  190.          {
  191.             thisSprite.gotoAndPlay("ranged");
  192.             thisSprite._atkdirX = ATKDIR_LEFT;
  193.             thisSprite._atkdirY = ATKDIR_DOWN;
  194.             thisSprite._damage = 4;
  195.          }
  196.          else if(prob(20))
  197.          {
  198.             thisSprite.gotoAndPlay("upper");
  199.             thisSprite._atkdirX = ATKDIR_NONELEFT;
  200.             thisSprite._atkdirY = ATKDIR_BOUNCE;
  201.             thisSprite._damage = 6;
  202.          }
  203.          else if(prob(25))
  204.          {
  205.             thisSprite.gotoAndPlay("airranged");
  206.             thisSprite._atkdirX = ATKDIR_LEFT;
  207.             thisSprite._atkdirY = ATKDIR_NONE;
  208.             thisSprite._damage = 8;
  209.          }
  210.          else if(prob(25))
  211.          {
  212.             thisSprite.gotoAndPlay("combo1");
  213.             thisSprite._atkdirX = ATKDIR_NONELEFT;
  214.             thisSprite._atkdirY = ATKDIR_JUGGLE;
  215.             thisSprite._damage = 32;
  216.          }
  217.          else if(prob(42))
  218.          {
  219.             thisSprite.gotoAndPlay("combo2");
  220.             thisSprite._atkdirX = ATKDIR_NONELEFT;
  221.             thisSprite._atkdirY = ATKDIR_JUGGLE;
  222.             thisSprite._damage = 32;
  223.          }
  224.          else
  225.          {
  226.             thisSprite.gotoAndPlay("combo3");
  227.             thisSprite._atkdirX = ATKDIR_NONELEFT;
  228.             thisSprite._atkdirY = ATKDIR_JUGGLE;
  229.             thisSprite._damage = 32;
  230.          }
  231.          if(!faceLeft)
  232.          {
  233.             if(thisSprite._atkdirX == ATKDIR_NONELEFT)
  234.             {
  235.                thisSprite._atkdirX = ATKDIR_NONERIGHT;
  236.             }
  237.             if(thisSprite._atkdirX == ATKDIR_LEFT)
  238.             {
  239.                thisSprite._atkdirX = ATKDIR_RIGHT;
  240.             }
  241.          }
  242.       }
  243.    }
  244.    else if(ai && !_gameover)
  245.    {
  246.       _dexter = false;
  247.       _shira = false;
  248.       _tempdiffculty = 0;
  249.       if(_difficulty > MAX_DIFFICULTY)
  250.       {
  251.          _tempdiffculty = _difficulty;
  252.          _difficulty = MAX_DIFFICULTY;
  253.       }
  254.       if(thisName == NAME_SHIRABELL)
  255.       {
  256.          _shira = true;
  257.          thisName = NAME_BELL;
  258.       }
  259.       if(thisName == NAME_DEXTER)
  260.       {
  261.          _dexter = true;
  262.          thisName = NAME_BLOSSOM;
  263.       }
  264.       onLeft = false;
  265.       onRight = false;
  266.       if(thisSprite._personality != AI_RANGED)
  267.       {
  268.          onUp = thisSprite._airborne;
  269.       }
  270.       onDown = false;
  271.       onA = false;
  272.       onB = false;
  273.       newLeft = false;
  274.       newRight = false;
  275.       newUp = false;
  276.       newDown = false;
  277.       newA = false;
  278.       newB = false;
  279.       keyCombo[spriteIndex] = null;
  280.       if(thisSprite._ai_aerial > 100)
  281.       {
  282.          thisSprite._ai_aerial = 100;
  283.       }
  284.       if(thisSprite._ai_aerial > 0)
  285.       {
  286.          thisSprite._ai_aerial--;
  287.       }
  288.       if(otherSprite._airborne)
  289.       {
  290.          thisSprite._ai_aerial += 2;
  291.       }
  292.       if(thisSprite._ai_flank > 120)
  293.       {
  294.          thisSprite._ai_flank = 120;
  295.       }
  296.       if(thisSprite._ai_flank > 0)
  297.       {
  298.          thisSprite._ai_flank--;
  299.       }
  300.       if(thisSprite._rangedRating > 0)
  301.       {
  302.          thisSprite._rangedRating = 0;
  303.       }
  304.       if(thisSprite._aggressiveRating > 0)
  305.       {
  306.          thisSprite._aggressiveRating = 0;
  307.       }
  308.       if(thisSprite._rangedRating < 0 && thisSprite._aggressiveRating < 0)
  309.       {
  310.          if(thisSprite._aggressiveRating > thisSprite._rangedRating)
  311.          {
  312.             thisSprite._rangedRating += - thisSprite._aggressiveRating;
  313.             thisSprite._aggressiveRating = 0;
  314.          }
  315.          else
  316.          {
  317.             thisSprite._aggressiveRating += - thisSprite._rangedRating;
  318.             thisSprite._rangedRating = 0;
  319.          }
  320.       }
  321.       if(!(thisSprite._state == STATE_FROZEN || thisSprite._state == STATE_DAMAGE || otherSprite._state == STATE_DAMAGE))
  322.       {
  323.          if(thisSprite._deflected || thisSprite._deflect)
  324.          {
  325.             thisSprite._personality = AI_AGGRESSIVE;
  326.          }
  327.          else if(prob(3 - 2.5 * _difficulty / MAX_DIFFICULTY) && otherSprite._state != STATE_FROZEN && otherSprite._state != STATE_DAMAGE && (thisSprite._state == STATE_IDLE || thisSprite._state == STATE_RUN || thisSprite._state == STATE_FALLEN || thisSprite._state == STATE_SHIELD || thisSprite._state == STATE_SHIELDDAMAGE))
  328.          {
  329.             thisSprite._personality = AI_DEFENSIVE;
  330.             thisSprite._beenHit = false;
  331.          }
  332.          else if(thisSprite._personality == AI_DEFENSIVE && prob(4) || otherSprite._state == STATE_FROZEN || otherSprite._personality == AI_DEFENSIVE || thisSprite._personality == AI_RANGED && thisSprite._rangedRating >= 0 && prob(2) || thisSprite._personality == AI_RANGED && thisSprite._rangedRating < -200)
  333.          {
  334.             thisSprite._personality = AI_AGGRESSIVE;
  335.          }
  336.          else if(thisSprite._personality == AI_DEFENSIVE && prob(2) || thisSprite._personality == AI_AGGRESSIVE && thisSprite._aggressiveRating >= 0 && prob(1) || thisSprite._personality == AI_AGGRESSIVE && thisSprite._aggressiveRating < -200)
  337.          {
  338.             thisSprite._personality = AI_RANGED;
  339.          }
  340.       }
  341.       if(thisSprite._personality == AI_DEFENSIVE)
  342.       {
  343.          if(thisSprite._state == STATE_SHIELDDAMAGE && !otherSprite.projectile._hitDone && otherSprite.projectile._visible && (otherSprite.projectile._x > thisSprite._x && faceLeft || otherSprite.projectile._x < thisSprite._x && !faceLeft))
  344.          {
  345.             if(thisSprite._x < 200)
  346.             {
  347.                keyCombo[spriteIndex] = KEYINDEX_RIGHT;
  348.                newRight = true;
  349.             }
  350.             else
  351.             {
  352.                keyCombo[spriteIndex] = KEYINDEX_LEFT;
  353.                newLeft = true;
  354.             }
  355.          }
  356.          if(thisSprite._state == STATE_SHIELDDAMAGE || thisSprite._state == STATE_DAMAGE)
  357.          {
  358.             thisSprite._beenHit = true;
  359.          }
  360.          if(thisSprite._beenHit)
  361.          {
  362.             onDown = true;
  363.             if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  364.             {
  365.                if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  366.                {
  367.                   onRight = faceLeft;
  368.                   onLeft = !faceLeft;
  369.                }
  370.             }
  371.             if(prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.3 - _difficulty * AI_BASE_ERROR * 0.3))
  372.             {
  373.                thisSprite._beenHit = false;
  374.             }
  375.          }
  376.       }
  377.       else if(thisSprite._personality == AI_RANGED)
  378.       {
  379.          thisSprite._aggressiveRating += 2;
  380.          onUp = false;
  381.          if(!thisSprite._airborne)
  382.          {
  383.             if(otherSprite._x == thisSprite._x && prob(_difficulty * AI_BASE_ERROR))
  384.             {
  385.                if(faceLeft)
  386.                {
  387.                   onRight = true;
  388.                }
  389.                else
  390.                {
  391.                   onLeft = true;
  392.                }
  393.             }
  394.             else if(otherSprite._x < thisSprite._x)
  395.             {
  396.                if(thisName != NAME_BUTTERCUP)
  397.                {
  398.                   if(thisName == NAME_BELL && Math.abs(otherSprite._x - thisSprite._x) < 360 || Math.abs(otherSprite._x - thisSprite._x) < 280 && (thisSprite._x < 380 || prob(2)))
  399.                   {
  400.                      onRight = true;
  401.                   }
  402.                   else if(Math.abs(otherSprite._x - thisSprite._x) > 290 && thisName != NAME_BELL)
  403.                   {
  404.                      onLeft = true;
  405.                   }
  406.                }
  407.                else
  408.                {
  409.                   onRight = true;
  410.                   if(Math.abs(otherSprite._x - thisSprite._x) > 220 || thisSprite._x > 380)
  411.                   {
  412.                      onRight = false;
  413.                      if(Math.abs(otherSprite._x - thisSprite._x) > 240)
  414.                      {
  415.                         onLeft = true;
  416.                      }
  417.                   }
  418.                }
  419.                if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  420.                {
  421.                   if(Math.abs(otherSprite._x - thisSprite._x) < 100 && prob(10) || thisSprite._state == STATE_SHIELDDAMAGE && prob(7))
  422.                   {
  423.                      keyCombo[spriteIndex] = KEYINDEX_LEFT;
  424.                      newLeft = true;
  425.                      onRight = false;
  426.                   }
  427.                }
  428.             }
  429.             else
  430.             {
  431.                if(thisName != NAME_BUTTERCUP)
  432.                {
  433.                   if((thisName == NAME_BELL && Math.abs(otherSprite._x - thisSprite._x) < 360 || Math.abs(otherSprite._x - thisSprite._x) < 280) && (thisSprite._x > 20 || prob(2)))
  434.                   {
  435.                      onLeft = true;
  436.                   }
  437.                   else if(Math.abs(otherSprite._x - thisSprite._x) > 290 && thisName != NAME_BELL)
  438.                   {
  439.                      onRight = true;
  440.                   }
  441.                }
  442.                else
  443.                {
  444.                   onLeft = true;
  445.                   if(Math.abs(otherSprite._x - thisSprite._x) > 220 || thisSprite._x < 20)
  446.                   {
  447.                      onLeft = false;
  448.                      if(Math.abs(otherSprite._x - thisSprite._x) > 240)
  449.                      {
  450.                         onRight = true;
  451.                      }
  452.                   }
  453.                }
  454.                if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  455.                {
  456.                   if(Math.abs(otherSprite._x - thisSprite._x) < 100 && prob(10) || thisSprite._state == STATE_SHIELDDAMAGE && prob(7))
  457.                   {
  458.                      keyCombo[spriteIndex] = KEYINDEX_LEFT;
  459.                      newLeft = true;
  460.                   }
  461.                }
  462.             }
  463.          }
  464.          if(keyCombo[spriteIndex] == KEYINDEX_LEFT && thisSprite._x < 150 && otherSprite._x < 200)
  465.          {
  466.             newLeft = false;
  467.             keyCombo[spriteIndex] = KEYINDEX_RIGHT;
  468.             newRight = true;
  469.          }
  470.          if(thisSprite._state == STATE_SHIELDDAMAGE && !otherSprite.projectile._hitDone && otherSprite.projectile._visible && (otherSprite.projectile._x > thisSprite._x && faceLeft || otherSprite.projectile._x < thisSprite._x && !faceLeft))
  471.          {
  472.             if(thisSprite._x < 200)
  473.             {
  474.                keyCombo[spriteIndex] = KEYINDEX_RIGHT;
  475.                newRight = true;
  476.             }
  477.             else
  478.             {
  479.                keyCombo[spriteIndex] = KEYINDEX_LEFT;
  480.                newLeft = true;
  481.             }
  482.          }
  483.          if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  484.          {
  485.             if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  486.             {
  487.                if(prob(10) && otherSprite._state != STATE_FROZEN && Math.abs(thisSprite._x - otherSprite._x) > 70)
  488.                {
  489.                   onA = true;
  490.                   newA = true;
  491.                   if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  492.                   {
  493.                      onRight = faceLeft;
  494.                      onLeft = !faceLeft;
  495.                   }
  496.                   if(prob(50))
  497.                   {
  498.                      onLeft = false;
  499.                      onRight = false;
  500.                   }
  501.                   if((thisName == NAME_BLOSSOM || thisName == NAME_BUBBLES && prob(50) || thisName == NAME_BUBBLES && thisSprite.projectile._visible || thisName == NAME_BUTTERCUP || thisName == NAME_BELL && prob(4)) && Math.abs(otherSprite._x - thisSprite._x) > 150)
  502.                   {
  503.                      onA = false;
  504.                      newA = false;
  505.                      onUp = true;
  506.                      newUp = true;
  507.                   }
  508.                   if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.4 - _difficulty * AI_BASE_ERROR * 0.4))
  509.                   {
  510.                      if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  511.                      {
  512.                         onRight = faceLeft;
  513.                         onLeft = !faceLeft;
  514.                      }
  515.                   }
  516.                }
  517.             }
  518.          }
  519.          if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  520.          {
  521.             if(thisSprite._airborne)
  522.             {
  523.                onA = false;
  524.                newA = false;
  525.                onB = true;
  526.                newB = true;
  527.                if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  528.                {
  529.                   onRight = faceLeft;
  530.                   onLeft = !faceLeft;
  531.                }
  532.             }
  533.          }
  534.          if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  535.          {
  536.             if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.5 - _difficulty * AI_BASE_ERROR * 0.5))
  537.             {
  538.                if(otherName == NAME_BUBBLES && otherSprite._airborne && otherSprite.projectile._hitDone && otherSprite._state != STATE_DAMAGE || otherName == NAME_BUBBLES && !otherSprite.projectile._hitDone && !otherSprite.projectile._visible && Math.abs(thisSprite._x - otherSprite.projectile._x) < 250 && (thisSprite._x < otherSprite.projectile._x && otherSprite.projectile._xscale > 0 || thisSprite._x > otherSprite.projectile._x && otherSprite.projectile._xscale < 0) || otherName != NAME_BUBBLES && otherSprite._airborne && otherSprite._state != STATE_DAMAGE)
  539.                {
  540.                   onA = false;
  541.                   newA = false;
  542.                }
  543.                else if(otherSprite._danger)
  544.                {
  545.                   onA = false;
  546.                   newA = false;
  547.                }
  548.                else if(prob(160 - Math.abs(thisSprite._hp - MIN_HP) / 10))
  549.                {
  550.                   if(otherSprite._xscale > 0 && thisSprite._x <= otherSprite._x || otherSprite._xscale < 0 && thisSprite._x >= otherSprite._x)
  551.                   {
  552.                      if(otherSprite._state != STATE_IDLE && otherSprite._state != STATE_RUN && otherSprite._state != STATE_FROZEN && otherSprite._state != STATE_SHIELD && otherSprite._state != STATE_SHIELDDAMAGE && otherSprite._state != STATE_DAMAGE && otherSprite._state != STATE_FALLEN && otherSprite._state != STATE_RECOVER)
  553.                      {
  554.                         onA = false;
  555.                         newA = false;
  556.                      }
  557.                   }
  558.                }
  559.             }
  560.          }
  561.          if(thisSprite._state == STATE_DASH)
  562.          {
  563.             onB = false;
  564.          }
  565.       }
  566.       else if(thisSprite._personality == AI_AGGRESSIVE)
  567.       {
  568.          thisSprite._rangeRating += 1;
  569.          bufferedCombo2[spriteIndex] = KEYINDEX_A;
  570.          if(prob(70))
  571.          {
  572.             bufferedCombo2[spriteIndex] = KEYINDEX_B;
  573.          }
  574.          bufferedCombo3[spriteIndex] = KEYINDEX_A;
  575.          if(prob(50))
  576.          {
  577.             bufferedCombo3[spriteIndex] = KEYINDEX_B;
  578.          }
  579.          if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  580.          {
  581.             if(otherSprite._airborne && _difficulty != MAX_DIFFICULTY && prob(thisSprite._ai_aerial))
  582.             {
  583.                if(thisName == NAME_BELL && Math.abs(thisSprite._x - otherSprite._x) < 50 || (thisName == NAME_BLOSSOM || thisName == NAME_BUBBLES) && (faceLeft && otherSprite._x < thisSprite._x - 30 && otherSprite._x > thisSprite._x - 60 || !faceLeft && otherSprite._x > thisSprite._x && otherSprite._x < thisSprite._x + 20) || thisName == NAME_BUTTERCUP && (faceLeft && otherSprite._x < thisSprite._x && otherSprite._x > thisSprite._x - 20 || !faceLeft && otherSprite._x > thisSprite._x && otherSprite._x < thisSprite._x + 20))
  584.                {
  585.                   bufferedCombo2[spriteIndex] = KEYINDEX_A;
  586.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  587.                   onB = true;
  588.                   newB = true;
  589.                }
  590.             }
  591.             else if(_dexter)
  592.             {
  593.                if(otherSprite._juggles < 1 && prob(60))
  594.                {
  595.                   bufferedCombo2[spriteIndex] = KEYINDEX_A;
  596.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  597.                }
  598.                else
  599.                {
  600.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  601.                   bufferedCombo3[spriteIndex] = KEYINDEX_B;
  602.                   if(prob(28) && Math.abs(thisSprite._x - otherSprite._x) < 50)
  603.                   {
  604.                      bufferedCombo3[spriteIndex] = KEYINDEX_A;
  605.                   }
  606.                }
  607.             }
  608.             else if(thisName == NAME_BLOSSOM)
  609.             {
  610.                if(otherSprite._juggles < 1 && prob(40))
  611.                {
  612.                   bufferedCombo2[spriteIndex] = KEYINDEX_A;
  613.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  614.                }
  615.                else
  616.                {
  617.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  618.                   bufferedCombo3[spriteIndex] = KEYINDEX_B;
  619.                   if(prob(25))
  620.                   {
  621.                      bufferedCombo3[spriteIndex] = KEYINDEX_A;
  622.                   }
  623.                }
  624.             }
  625.             else if(thisName == NAME_BUBBLES)
  626.             {
  627.                if(otherSprite._juggles < 1 && prob(66))
  628.                {
  629.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  630.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  631.                }
  632.                else
  633.                {
  634.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  635.                   bufferedCombo3[spriteIndex] = KEYINDEX_B;
  636.                   if(prob(15))
  637.                   {
  638.                      bufferedCombo2[spriteIndex] = KEYINDEX_A;
  639.                   }
  640.                }
  641.             }
  642.             else if(thisName == NAME_BUTTERCUP)
  643.             {
  644.                if(otherSprite._juggles < 1 && prob(35))
  645.                {
  646.                   bufferedCombo2[spriteIndex] = KEYINDEX_A;
  647.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  648.                }
  649.                else
  650.                {
  651.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  652.                   bufferedCombo3[spriteIndex] = KEYINDEX_B;
  653.                   if(prob(70))
  654.                   {
  655.                      bufferedCombo3[spriteIndex] = KEYINDEX_A;
  656.                   }
  657.                   if(otherSprite._juggles < 1 && prob(70))
  658.                   {
  659.                      bufferedCombo3[spriteIndex] = KEYINDEX_B;
  660.                   }
  661.                }
  662.             }
  663.             else if(thisName == NAME_BELL)
  664.             {
  665.                if(otherSprite._juggles < 1 && prob(55))
  666.                {
  667.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  668.                   bufferedCombo3[spriteIndex] = KEYINDEX_A;
  669.                }
  670.                else
  671.                {
  672.                   bufferedCombo2[spriteIndex] = KEYINDEX_B;
  673.                   bufferedCombo3[spriteIndex] = KEYINDEX_B;
  674.                   if(prob(50) && otherSprite._juggles > 0)
  675.                   {
  676.                      bufferedCombo2[spriteIndex] = KEYINDEX_A;
  677.                   }
  678.                }
  679.             }
  680.          }
  681.          if(prob(AI_BASE_ERROR * MAX_DIFFICULTY / 2 - _difficulty * AI_BASE_ERROR / 2))
  682.          {
  683.             bufferedCombo2[spriteIndex] = null;
  684.          }
  685.          else if(prob(AI_BASE_ERROR * MAX_DIFFICULTY / 2 - _difficulty * AI_BASE_ERROR / 2))
  686.          {
  687.             bufferedCombo3[spriteIndex] = null;
  688.          }
  689.          else if(otherSprite._state != STATE_DAMAGE)
  690.          {
  691.             if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY / 2 - _difficulty * AI_BASE_ERROR / 2))
  692.             {
  693.                if(bufferedCombo2[spriteIndex] == KEYINDEX_A || otherSprite._state != STATE_SHIELDDAMAGE || otherSprite._state == STATE_SHIELDDAMAGE && prob(60))
  694.                {
  695.                   bufferedCombo2[spriteIndex] = null;
  696.                }
  697.                bufferedCombo3[spriteIndex] = null;
  698.             }
  699.          }
  700.          if(Math.abs(otherSprite._x - thisSprite._x) < 50 && prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  701.          {
  702.             if(!thisSprite._deflect)
  703.             {
  704.                if(prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.1 - _difficulty * AI_BASE_ERROR * 0.1) && prob(30))
  705.                {
  706.                   onUp = true;
  707.                   if(!thisSprite._airborne)
  708.                   {
  709.                      newUp = true;
  710.                   }
  711.                }
  712.             }
  713.          }
  714.          else if(!((otherSprite._state == STATE_DAMAGE && otherSprite._juggles >= MAX_COMBO || otherSprite._state == STATE_FALLEN || otherSprite._state == STATE_RECOVER || otherSprite._y < 120) && Math.abs(otherSprite._x - thisSprite._x) < 10 && prob(97) || (otherSprite._y < 160 && otherSprite._state != STATE_DAMAGE && Math.abs(otherSprite._x - thisSprite._x) < 70 || thisName == NAME_BUBBLES && otherSprite._y < 160 && otherSprite._state != STATE_DAMAGE && Math.abs(otherSprite._x - thisSprite._x) < 120)))
  715.          {
  716.             if(otherSprite._x == thisSprite._x && thisSprite._ai_flank > 0 && prob(_difficulty * AI_BASE_ERROR))
  717.             {
  718.                if(faceLeft)
  719.                {
  720.                   onRight = true;
  721.                }
  722.                else
  723.                {
  724.                   onLeft = true;
  725.                }
  726.                thisSprite._ai_flank = 0;
  727.             }
  728.             else if(otherSprite._x < thisSprite._x)
  729.             {
  730.                onLeft = true;
  731.                if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  732.                {
  733.                   if(!(thisSprite._airborne && otherSprite._state == STATE_DAMAGE))
  734.                   {
  735.                      if(!thisSprite._deflect)
  736.                      {
  737.                         if(Math.abs(otherSprite._x - thisSprite._x) > 150 && prob(25) || thisSprite._state == STATE_SHIELDDAMAGE && prob(5))
  738.                         {
  739.                            keyCombo[spriteIndex] = KEYINDEX_LEFT;
  740.                            newLeft = true;
  741.                         }
  742.                      }
  743.                   }
  744.                }
  745.                if(thisSprite._ai_flank <= 2 && Math.abs(thisSprite._x - otherSprite._x) < 15 && otherSprite._state != STATE_SHIELDDAMAGE)
  746.                {
  747.                   onLeft = false;
  748.                }
  749.                else if(!faceLeft)
  750.                {
  751.                   thisSprite._ai_flank = 0;
  752.                }
  753.             }
  754.             else
  755.             {
  756.                onRight = true;
  757.                if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  758.                {
  759.                   if(!(thisSprite._airborne && otherSprite._state == STATE_DAMAGE))
  760.                   {
  761.                      if(!thisSprite._deflect)
  762.                      {
  763.                         if(Math.abs(otherSprite._x - thisSprite._x) > 150 && prob(25) || thisSprite._state == STATE_SHIELDDAMAGE && prob(5))
  764.                         {
  765.                            keyCombo[spriteIndex] = KEYINDEX_RIGHT;
  766.                            newRight = true;
  767.                         }
  768.                      }
  769.                   }
  770.                }
  771.                if(thisSprite._ai_flank <= 2 && Math.abs(thisSprite._x - otherSprite._x) < 15 && otherSprite._state != STATE_SHIELDDAMAGE)
  772.                {
  773.                   onRight = false;
  774.                }
  775.                else if(faceLeft)
  776.                {
  777.                   thisSprite._ai_flank = 0;
  778.                }
  779.             }
  780.          }
  781.          if(!thisSprite._deflect)
  782.          {
  783.             if(thisSprite._state == STATE_SHIELDDAMAGE && !otherSprite.projectile._hitDone && otherSprite.projectile._visible && (otherSprite.projectile._x > thisSprite._x && faceLeft || otherSprite.projectile._x < thisSprite._x && !faceLeft))
  784.             {
  785.                if(thisSprite._x < 200)
  786.                {
  787.                   keyCombo[spriteIndex] = KEYINDEX_RIGHT;
  788.                   newRight = true;
  789.                }
  790.                else
  791.                {
  792.                   keyCombo[spriteIndex] = KEYINDEX_LEFT;
  793.                   newLeft = true;
  794.                }
  795.             }
  796.          }
  797.          if(!(prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98) || _shira && prob(4)))
  798.          {
  799.             if(prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.2 - _difficulty * AI_BASE_ERROR * 0.2) || _shira && prob(4))
  800.             {
  801.                if(prob(50))
  802.                {
  803.                   onB = true;
  804.                   newB = true;
  805.                }
  806.                else
  807.                {
  808.                   onA = true;
  809.                   newA = true;
  810.                }
  811.             }
  812.             else if(otherSprite._state == STATE_FALLEN || otherSprite._state == STATE_RECOVER || otherSprite._y < 120 && (!_shira || thisSprite._airborne) || otherSprite._state == STATE_COMBO1 || otherSprite._state == STATE_COMBO2 || otherSprite._juggles >= MAX_COMBO || otherName == NAME_BUBBLES && otherSprite._airborne && otherSprite.projectile._hitDone && otherSprite._state != STATE_DAMAGE && otherSprite._state != STATE_DOWNATK || otherName != NAME_BUBBLES && otherSprite._airborne && otherSprite._state != STATE_DAMAGE && otherSprite._state != STATE_DOWNATK)
  813.             {
  814.                if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  815.                {
  816.                   if(thisName == NAME_ROWDY && thisSprite._airborne && otherSprite._airborne && otherSprite._state == STATE_DAMAGE && otherSprite._juggles < MAX_COMBO)
  817.                   {
  818.                      onB = false;
  819.                      newB = false;
  820.                      onA = true;
  821.                      newA = true;
  822.                   }
  823.                }
  824.                if(prob(10) && thisSprite._airborne && (thisSprite._state == STATE_IDLE || thisSprite._state == STATE_RUN) && otherSprite._yspd > 0 && otherSprite._state == STATE_DAMAGE)
  825.                {
  826.                   if(!(thisName == STATE_BLOSSOM && otherSprite._y < thisSprite._y && Math.abs(otherSprite._x - thisSprite._x) < 70))
  827.                   {
  828.                      if(otherSprite._y < thisSprite._y - 10 && otherSprite._y > thisSprite._y - 50)
  829.                      {
  830.                         onB = true;
  831.                         newB = true;
  832.                         if(thisName == STATE_BUTTERCUP)
  833.                         {
  834.                            onB = false;
  835.                            newB = false;
  836.                            onA = true;
  837.                            newA = true;
  838.                         }
  839.                      }
  840.                   }
  841.                }
  842.             }
  843.             else if((thisSprite._state == STATE_IDLE || thisSprite._state == STATE_RUN) && otherSprite._state == STATE_RUN && (otherSprite._xscale > 0 && otherSprite._x > thisSprite._x || otherSprite._xscale < 0 && otherSprite._x < thisSprite._x) && Math.abs(otherSprite._x - thisSprite._x) < 80 && prob(30))
  844.             {
  845.                onB = true;
  846.                newB = true;
  847.                if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  848.                {
  849.                   onRight = faceLeft;
  850.                   onLeft = !faceLeft;
  851.                }
  852.             }
  853.             else if((thisSprite._state == STATE_IDLE || thisSprite._state == STATE_RUN) && Math.abs(otherSprite._x - thisSprite._x) < 40 && !prob((Math.abs(otherSprite._x - thisSprite._x) - 25) * 7) && !prob(thisSprite._ai_flank))
  854.             {
  855.                onB = true;
  856.                newB = true;
  857.                if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  858.                {
  859.                   onRight = faceLeft;
  860.                   onLeft = !faceLeft;
  861.                }
  862.             }
  863.             else if(((thisName == STATE_BLOSSOM || thisName == STATE_BUBBLES) && Math.abs(otherSprite._x - thisSprite._x) < 90 && prob(50) || prob(5)) && otherSprite._state != STATE_FROZEN && (thisName != NAME_BLOSSOM || otherName != NAME_BLOSSOM || otherSprite._state != STATE_RANGED))
  864.             {
  865.                onA = true;
  866.                newA = true;
  867.                if(prob(50))
  868.                {
  869.                   onLeft = false;
  870.                   onRight = false;
  871.                }
  872.                if(otherSprite._x > thisSprite._x && faceLeft || otherSprite._x < thisSprite._x && !faceLeft)
  873.                {
  874.                   onRight = faceLeft;
  875.                   onLeft = !faceLeft;
  876.                }
  877.             }
  878.          }
  879.          if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY * 0.98 - _difficulty * AI_BASE_ERROR * 0.98))
  880.          {
  881.             if(otherSprite._danger || otherSprite._state == STATE_AIRRANGED)
  882.             {
  883.                onA = false;
  884.                newA = false;
  885.                onB = false;
  886.                newB = false;
  887.             }
  888.             else if(prob(120 - Math.abs(thisSprite._hp - MIN_HP) / 10))
  889.             {
  890.                if(otherSprite._xscale > 0 && thisSprite._x <= otherSprite._x || otherSprite._xscale < 0 && thisSprite._x >= otherSprite._x)
  891.                {
  892.                   if(otherSprite._state != STATE_IDLE && otherSprite._state != STATE_RUN && otherSprite._state != STATE_FROZEN && otherSprite._state != STATE_SHIELD && otherSprite._state != STATE_SHIELDDAMAGE && otherSprite._state != STATE_DAMAGE && otherSprite._state != STATE_FALLEN && otherSprite._state != STATE_RECOVER)
  893.                   {
  894.                      onB = false;
  895.                      newB = false;
  896.                      onA = false;
  897.                      newA = false;
  898.                      if(thisSprite._ai_flank < 4 * _difficulty)
  899.                      {
  900.                         thisSprite._ai_flank = 4 * _difficulty;
  901.                      }
  902.                   }
  903.                }
  904.             }
  905.          }
  906.       }
  907.       if(!prob(AI_BASE_ERROR * MAX_DIFFICULTY - _difficulty * AI_BASE_ERROR))
  908.       {
  909.          if(thisSprite._state == STATE_DASH)
  910.          {
  911.             onB = Math.abs(otherSprite._x - thisSprite._x) < 50;
  912.          }
  913.       }
  914.       if(thisSprite._aideflected)
  915.       {
  916.          thisSprite._aideflected = false;
  917.          if(Math.abs(otherSprite._x - thisSprite._x) < 60)
  918.          {
  919.             newB = true;
  920.             onB = true;
  921.          }
  922.       }
  923.       if(_dexter)
  924.       {
  925.          _dexter = false;
  926.          thisName = NAME_DEXTER;
  927.       }
  928.       if(_shira)
  929.       {
  930.          _shira = false;
  931.          thisName = NAME_SHIRABELL;
  932.       }
  933.       if(_tempdiffculty != 0)
  934.       {
  935.          _difficulty = _tempdiffculty;
  936.       }
  937.    }
  938.    if(thisSprite._state == STATE_DASH && thisSprite._personality == AI_RANGED)
  939.    {
  940.       onB = false;
  941.    }
  942. }
  943. function prob(chance)
  944. {
  945.    return Math.random() * 100 < chance;
  946. }
  947. _quality = "HIGH";
  948. _root._idle = 0;
  949. _root.onMouseDown = function()
  950. {
  951.    _root._idle = 0;
  952. };
  953. SCREENSIZE_HALFWIDTH = 200;
  954. SCREENSIZE_HALFHEIGHT = 125;
  955. SPRITE_HEIGHT = 36;
  956. SPRITE_WIDTH = 20;
  957. SPRITE_YRADIUS = 18;
  958. SPRITE_XRADIUS = 13;
  959. BUTCH_DAMAGE = 0.8;
  960. BOOMER_DAMAGE = 2;
  961. ZIM_Y_OFFSET = 60;
  962. ZIM_Y_OFFSET2 = 20;
  963. NUMOF_OPPONENTS = 8;
  964. MAX_ARMOUR = 5;
  965. MAX_IDLE = 750;
  966. MAX_JUMPDELAY = 4;
  967. MAX_DIFFICULTY = 10;
  968. MAX_FALLTIME = 22;
  969. MAX_IDLETIME = 8;
  970. MAX_SPRITES = 8;
  971. MAX_HP = 1000;
  972. MIN_HP = -710;
  973. MAX_COMBO = 2;
  974. MAX_HITEFFECTS = 4;
  975. Z_OPAQUE = 1;
  976. Z_BG = 5;
  977. Z_TERRAINOPAQUE = 9;
  978. Z_TERRAIN = 10;
  979. Z_HPBAR0 = 300;
  980. Z_HPBARFRAME0 = 400;
  981. Z_HPBAR1 = 301;
  982. Z_HPBARFRAME1 = 401;
  983. Z_COMBO0 = 410;
  984. Z_COMBO1 = 411;
  985. Z_DEMO = 420;
  986. Z_FLASH = 500;
  987. Z_SFXHIT = 550;
  988. Z_SPRITE = 600;
  989. Z_PROJECTILE = 700;
  990. Z_FG1 = 801;
  991. Z_FG2 = 802;
  992. Z_FPS = 900;
  993. Z_READY = 901;
  994. Z_DASHBAR0 = 902;
  995. Z_DASHBAR1 = 903;
  996. Z_STORIES = 950;
  997. Z_FADER = 1000;
  998. NUMOF_NAMES = 8;
  999. NAME_BLOSSOM = 0;
  1000. NAME_BUBBLES = 1;
  1001. NAME_BUTTERCUP = 2;
  1002. NAME_BELL = 3;
  1003. NAME_DEXTER = 4;
  1004. NAME_ROWDY = 5;
  1005. NAME_ZIM = 6;
  1006. NAME_SHIRABELL = 7;
  1007. MODE_STORY = 0;
  1008. MODE_VERSUS = 1;
  1009. MODE_SURVIVAL = 2;
  1010. MODE_DEMO = 3;
  1011. MODE_TUTORIAL = 4;
  1012. AI_BASE_ERROR = 10;
  1013. AI_STANDARD = 0;
  1014. AI_AGGRESSIVE = 1;
  1015. AI_AERIAL = 2;
  1016. AI_KAMIKAZE = 3;
  1017. AI_SUICIDE = 4;
  1018. AI_EVASIVE = 5;
  1019. AI_CLEAR = 6;
  1020. AI_DEFENSIVE = 7;
  1021. AI_COUNTER = 8;
  1022. AI_HITANDRUN = 9;
  1023. AI_RANGED = 10;
  1024. AI_CHEAPRANGED = 11;
  1025. STATE_IDLE = 1;
  1026. STATE_RUN = 2;
  1027. STATE_DASH = 3;
  1028. STATE_CHARGE = 4;
  1029. STATE_COMBO1 = 5;
  1030. STATE_COMBO2 = 6;
  1031. STATE_COMBO3 = 7;
  1032. STATE_UPPER = 8;
  1033. STATE_RANGED = 9;
  1034. STATE_DOWNATK = 10;
  1035. STATE_WALL = 11;
  1036. STATE_CHARGEDUPPER = 12;
  1037. STATE_CHARGEDRANGED = 13;
  1038. STATE_AIRRANGED = 14;
  1039. STATE_SHIELD = 15;
  1040. STATE_DOWNATK2 = 16;
  1041. STATE_DAMAGE = 17;
  1042. STATE_HIT = 18;
  1043. STATE_FALLEN = 19;
  1044. STATE_RECOVER = 20;
  1045. STATE_SHIELDDAMAGE = 21;
  1046. STATE_COMBO2B = 22;
  1047. STATE_COMBO3B = 23;
  1048. STATE_FROZEN = 24;
  1049. STATE_AIRRANGED2 = 25;
  1050. c = 25;
  1051. ATKDIR_BACK = 0;
  1052. ATKDIR_AWAY = 1;
  1053. ATKDIR_LEFT = 2;
  1054. ATKDIR_RIGHT = 3;
  1055. ATKDIR_UP = 4;
  1056. ATKDIR_SLAMDOWN = 5;
  1057. ATKDIR_JUGGLE = 6;
  1058. ATKDIR_DOWN = 7;
  1059. ATKDIR_NONE = 8;
  1060. ATKDIR_NONELEFT = 9;
  1061. ATKDIR_NONERIGHT = 10;
  1062. ATKDIR_VACUUM = 11;
  1063. ATKDIR_BOUNCE = 12;
  1064. normalClrTrans = new Object();
  1065. normalClrTrans.ra = normalClrTrans.ga = normalClrTrans.ba = 100;
  1066. normalClrTrans.rb = normalClrTrans.gb = normalClrTrans.bb = 0;
  1067. deflectClrTrans = new Object();
  1068. deflectClrTrans.ra = deflectClrTrans.ga = deflectClrTrans.ba = 100;
  1069. deflectClrTrans.rb = deflectClrTrans.gb = deflectClrTrans.bb = 125;
  1070. var winClrTrans = new Array(NUMOF_NAMES);
  1071. i = 0;
  1072. while(i < NUMOF_NAMES)
  1073. {
  1074.    winClrTrans[i] = new Object();
  1075.    winClrTrans[i].ra = winClrTrans[i].ga = winClrTrans[i].ba = 70;
  1076.    winClrTrans[i].rb = winClrTrans[i].gb = winClrTrans[i].bb = 0;
  1077.    i++;
  1078. }
  1079. winClrTrans[NAME_BLOSSOM].ra = 100;
  1080. winClrTrans[NAME_BUBBLES].ba = 100;
  1081. winClrTrans[NAME_BUTTERCUP].ga = 100;
  1082. winClrTrans[NAME_BELL].ra = winClrTrans[NAME_BELL].ga = winClrTrans[NAME_BELL].ba = 100;
  1083. winClrTrans[NAME_DEXTER].ra = winClrTrans[NAME_DEXTER].ga = winClrTrans[NAME_DEXTER].ba = 100;
  1084. winClrTrans[NAME_ROWDY].ra = winClrTrans[NAME_ROWDY].ga = winClrTrans[NAME_ROWDY].ba = 100;
  1085. winClrTrans[NAME_ZIM].ra = winClrTrans[NAME_ZIM].ga = winClrTrans[NAME_ZIM].ba = 100;
  1086. winClrTrans[NAME_SHIRABELL].ra = winClrTrans[NAME_SHIRABELL].ga = winClrTrans[NAME_SHIRABELL].ba = 100;
  1087. var twinClrTrans = new Object();
  1088. twinClrTrans.ra = 20;
  1089. twinClrTrans.ga = 75;
  1090. twinClrTrans.ba = 100;
  1091. twinClrTrans.rb = twinClrTrans.gb = twinClrTrans.bb = 0;
  1092. SPRITE_OPPONENTS = new Array(NUMOF_NAMES);
  1093. SPRITE_NAME = new Array(NUMOF_NAMES);
  1094. SPRITE_RUNSPEED = new Array(NUMOF_NAMES);
  1095. SPRITE_JUMPSPEED = new Array(NUMOF_NAMES);
  1096. SPRITE_MAXFALLSPEED = new Array(NUMOF_NAMES);
  1097. SPRITE_MAXDASHFUEL = new Array(NUMOF_NAMES);
  1098. n = NAME_BLOSSOM;
  1099. SPRITE_NAME[n] = "Blossom";
  1100. SPRITE_RUNSPEED[n] = 8;
  1101. SPRITE_JUMPSPEED[n] = 18;
  1102. SPRITE_MAXFALLSPEED[n] = 20;
  1103. SPRITE_MAXDASHFUEL[n] = 10;
  1104. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1105. SPRITE_OPPONENTS[n][0] = NAME_BUBBLES;
  1106. SPRITE_OPPONENTS[n][1] = NAME_BUTTERCUP;
  1107. SPRITE_OPPONENTS[n][2] = NAME_BLOSSOM;
  1108. SPRITE_OPPONENTS[n][3] = NAME_DEXTER;
  1109. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1110. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1111. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1112. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1113. n = NAME_BUBBLES;
  1114. SPRITE_NAME[n] = "Bubbles";
  1115. SPRITE_RUNSPEED[n] = 9;
  1116. SPRITE_JUMPSPEED[n] = 18;
  1117. SPRITE_MAXFALLSPEED[n] = 20;
  1118. SPRITE_MAXDASHFUEL[n] = 12;
  1119. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1120. SPRITE_OPPONENTS[n][0] = NAME_BUTTERCUP;
  1121. SPRITE_OPPONENTS[n][1] = NAME_BLOSSOM;
  1122. SPRITE_OPPONENTS[n][2] = NAME_BUBBLES;
  1123. SPRITE_OPPONENTS[n][3] = NAME_DEXTER;
  1124. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1125. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1126. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1127. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1128. n = NAME_BUTTERCUP;
  1129. SPRITE_NAME[n] = "Buttercup";
  1130. SPRITE_RUNSPEED[n] = 8;
  1131. SPRITE_JUMPSPEED[n] = 16;
  1132. SPRITE_MAXFALLSPEED[n] = 20;
  1133. SPRITE_MAXDASHFUEL[n] = 10;
  1134. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1135. SPRITE_OPPONENTS[n][0] = NAME_BLOSSOM;
  1136. SPRITE_OPPONENTS[n][1] = NAME_BUBBLES;
  1137. SPRITE_OPPONENTS[n][2] = NAME_BUTTERCUP;
  1138. SPRITE_OPPONENTS[n][3] = NAME_DEXTER;
  1139. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1140. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1141. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1142. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1143. n = NAME_BELL;
  1144. SPRITE_NAME[n] = "Bell";
  1145. SPRITE_RUNSPEED[n] = 8;
  1146. SPRITE_JUMPSPEED[n] = 19;
  1147. SPRITE_MAXFALLSPEED[n] = 20;
  1148. SPRITE_MAXDASHFUEL[n] = 10;
  1149. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1150. SPRITE_OPPONENTS[n][0] = NAME_BLOSSOM;
  1151. SPRITE_OPPONENTS[n][1] = NAME_BUBBLES;
  1152. SPRITE_OPPONENTS[n][2] = NAME_BUTTERCUP;
  1153. SPRITE_OPPONENTS[n][3] = NAME_DEXTER;
  1154. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1155. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1156. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1157. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1158. n = NAME_DEXTER;
  1159. SPRITE_NAME[n] = "Dexter";
  1160. SPRITE_RUNSPEED[n] = 7;
  1161. SPRITE_JUMPSPEED[n] = 16;
  1162. SPRITE_MAXFALLSPEED[n] = 20;
  1163. SPRITE_MAXDASHFUEL[n] = 8;
  1164. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1165. SPRITE_OPPONENTS[n][0] = NAME_DEXTER;
  1166. SPRITE_OPPONENTS[n][1] = NAME_BUBBLES;
  1167. SPRITE_OPPONENTS[n][2] = NAME_BUTTERCUP;
  1168. SPRITE_OPPONENTS[n][3] = NAME_BLOSSOM;
  1169. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1170. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1171. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1172. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1173. n = NAME_ROWDY;
  1174. SPRITE_NAME[n] = "Rowdyruff";
  1175. SPRITE_RUNSPEED[n] = 8;
  1176. SPRITE_JUMPSPEED[n] = 18;
  1177. SPRITE_MAXFALLSPEED[n] = 20;
  1178. SPRITE_MAXDASHFUEL[n] = 10;
  1179. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1180. SPRITE_OPPONENTS[n][0] = NAME_ROWDY;
  1181. SPRITE_OPPONENTS[n][1] = NAME_BUBBLES;
  1182. SPRITE_OPPONENTS[n][2] = NAME_BUTTERCUP;
  1183. SPRITE_OPPONENTS[n][3] = NAME_BLOSSOM;
  1184. SPRITE_OPPONENTS[n][4] = NAME_DEXTER;
  1185. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1186. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1187. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1188. n = NAME_ZIM;
  1189. SPRITE_NAME[n] = "Zim";
  1190. SPRITE_RUNSPEED[n] = 8;
  1191. SPRITE_JUMPSPEED[n] = 18;
  1192. SPRITE_MAXFALLSPEED[n] = 20;
  1193. SPRITE_MAXDASHFUEL[n] = 10;
  1194. n = NAME_SHIRABELL;
  1195. SPRITE_NAME[n] = "Shira Bell";
  1196. SPRITE_RUNSPEED[n] = 14;
  1197. SPRITE_JUMPSPEED[n] = 20;
  1198. SPRITE_MAXFALLSPEED[n] = 20;
  1199. SPRITE_MAXDASHFUEL[n] = 10;
  1200. SPRITE_OPPONENTS[n] = new Array(NUMOF_OPPONENTS);
  1201. SPRITE_OPPONENTS[n][0] = NAME_BLOSSOM;
  1202. SPRITE_OPPONENTS[n][1] = NAME_BUBBLES;
  1203. SPRITE_OPPONENTS[n][2] = NAME_BUTTERCUP;
  1204. SPRITE_OPPONENTS[n][3] = NAME_DEXTER;
  1205. SPRITE_OPPONENTS[n][4] = NAME_ROWDY;
  1206. SPRITE_OPPONENTS[n][5] = NAME_ZIM;
  1207. SPRITE_OPPONENTS[n][6] = NAME_BELL;
  1208. SPRITE_OPPONENTS[n][7] = NAME_SHIRABELL;
  1209. selectX = new Array(2);
  1210. selectY = new Array(2);
  1211. keyWasDown = new Array(2);
  1212. keyWasDown[0] = new Array(KEYSPERPLAYER);
  1213. keyWasDown[1] = new Array(KEYSPERPLAYER);
  1214. idleTime = new Array(2);
  1215. keyCombo = new Array(2);
  1216. keyComboNew = new Array(2);
  1217. bufferedUp = new Array(2);
  1218. bufferedLeft = new Array(2);
  1219. bufferedRight = new Array(2);
  1220. bufferedCombo2 = new Array(2);
  1221. bufferedCombo3 = new Array(2);
  1222. damageDone = new Array(MAX_SPRITES);
  1223. i = 0;
  1224. while(i < MAX_SPRITES)
  1225. {
  1226.    damageDone[i] = new Array(MAX_SPRITES);
  1227.    i++;
  1228. }
  1229. sprite = new Array(MAX_SPRITES);
  1230. spriteName = new Array(MAX_SPRITES);
  1231. _winstreak = 0;
  1232. _continue = false;
  1233. _spriteInstances = 2;
  1234. _scroll = true;
  1235.